You are what you eat.
And I'm cooking what I eat! :)
目录
Llama2 - 论文精读学习笔记背景全文概述方法预训练训练细节RMSNormSwiGLUGQAgroup-attentionLlama 2预训练模型评估※ 微调● 监督式微调(SFT: Supervised Fine-Tuning)● 强化学习与人类反馈(RLHF: Reinforcement Learning with Human Feedback)人类偏好数据收集奖励建模(RM: Reward Modeling)迭代式微调(Iterative Fine-Tuning)多轮一致性的系统消息 (System Message for Multi-Turn Consistency)RLHF 结果SafetySafety Fine-TuningRed TeamingSafety评估数据集结论补充参考博文原文目录
提前说明:本系列博文主要是对参考博文的解读与重述(对重点信息进行标记、或者整段摘录加深自己的记忆和理解、融合多个博文的精髓、统合不同的代表性的案例),仅做学习记录笔记使用。与君共享,希望一同进步。
2023 年 Meta(facebook)的大模型论文。
LLaMA2 用了两个 GPU 集群进行训练:
RSC 集群:200Gbps InfiniBand + 400W A100 GPU;
生产集群:200Gbps RoCE + 350W A100 GPU;
RoCE + 350W GPU 的集群,经过优化的代码能达到 IB + 400W GPU 集群性能的 90%。 总共耗费 3.3M GPU-hour。
大型语言模型(LLMs)在多个领域表现出卓越的能力,尤其是在需要复杂推理和专业知识的任务中,例如编程和创意写作。
LLMs通过直观的聊天界面与人类互动,导致了它们在公众中的快速普及。
LLMs通常通过自回归式的Transformer在大量自监督数据上进行预训练,然后通过诸如人类反馈的强化学习(RLHF)等技术进行微调,使其更符合人类偏好。尽管训练方法相对简单,但高计算要求限制了LLMs的发展。已有公开发布的预训练LLMs在性能上可以与GPT-3和Chinchilla等闭源模型相媲美,但这些模型并不适合作为诸如ChatGPT、BARD、Claude这样的闭源“产品”LLMs的替代品。
Llama 2 是之前广受欢迎的开源大型语言模型 LLaMA 的新版本,该模型已公开发布,可用于研究和商业用途。
本文开发并发布了Llama 2和Llama 2-Chat,以供研究和商业使用,这是一系列预训练和微调的LLMs,模型规模最大可达70亿参数。Llama 2-Chat在有用性和安全性方面的测试中普遍优于现有的开源模型,并且在人类评估中与一些闭源模型相当。
文章训练并开源了模型Llama2系列模型。文章对Llama2做了大量的安全和有用性的微调,并进行了大量的数值试验,实验证明,Llama2-chat比其它被比较的开源的chat模型(BLOOM,LLaMa1,Falcon)效果好,且有潜力成为一些未开源chat模型(ChatGPT,BARD)的替代。meta公司发行了如下开源模型
LLAMA2模型:LLAMA1[1]的更新版本,包含7B,13B,70B参数三个版本
LLAMA2-CHAT模型:在LLAMA2之上对对话场景进行微调的chat模型,包含7B,13B,70B参数三个版本。
文章整体框架如Figure 4。
LLaMA2整体的训练如Figure 4 所示,先通过自回归有监督的训练得到pretrain的llama2模型,然后能过有监督的fine-tuning、人类反馈的强化学习RLHF、Ghost Attention(GAtt)一起实现finetuning后的LLaMA-2-chat模型,RLHF中采用了拒绝采样和近似策略优化算法(PPO)。
本文还采取了提高模型安全性的措施,包括特定的数据注释和调整,红队测试,以及迭代评估。同时作者强调,虽然LLMs是一项新技术,可能带来潜在风险,但如果安全地进行,公开发布LLMs将对社会有益。作者提供了负责任使用指南和代码示例,以促进Llama 2和Llama 2-Chat的安全部署。
数据来源:训练数据来自公开可用的源,排除了来自 Meta 产品或服务的数据。
数据清洗:移除了已知包含大量个人信息的网站数据。
训练token数:训练了2万亿(2T)token的数据,以获得良好的性能和成本平衡。
LLaMA-2采用的模型结构跟LLaMA-1相同,使用了RMSNorm、SwiGLU、RoPE,在LLaMA-1的基础上Context长度增加了一倍变为4k,同时使用了grouped-query attention(
LLaMA-2采用AdamW的优化器,\beta_1=0.9, \beta_2 = 0.95, eps = 10^{-5};使用了cosine学习率调度,前2000轮进行warmup,后续学习率每次衰减10%;weight decay设为0.1,grad_clip设为1.0。
Tokenizer使用SentencePiece中的byte pair encoding(BPE)算法,总词表大小为32K个token
训练loss如下:
文章使用自回归Transformer模型,在LLaMA1的基础之上进行了一些增强,具体包括:
增加数据:Llama的语料库包含2 trillion tokens,且全部为公共可用数据,不包含Meta自己的数据集
增加40%的token数
增加上下文长度从2048到4096
修改attention为Grouped-query attention(GQA),以提升推理效率
对比:LLaMA1 vs Llama2
LLaMA-2是2023年7月24日Meta发布的LLaMA第二代,跟LLaMA-1几个显著区别:
免费可商用版本的大模型
context上下文增加了一倍,从2K变为了4K
训练的总token数从1.0T/1.4T增加为2.0T (
对于最大的模型参数量65B也增加到了70B(
训练耗时如下:
Model | A100-80G GPU Hours | Tokens( |
---|---|---|
LLaMA2-7B | 184320 | |
LLaMA2-13B | 368640 | |
LLaMA2-34B | 1038336 | |
LLaMA2-70B | 1720320 |
效果上在多个Benchmark上得到了提升:
使用标准Transformer架构
使用RMSNorm而不是原始的LayerNorm
使用SwiGLU激活函数
相对于LLaMA的2k上下文长度,LLaMA2增加到了4k上下文长度
使用了Grouped-Query Attention (GQA),而不是之前的MQA、MHA
使用了RoPE方式进行位置编码,使用旋转矩阵来编码位置信息,直接融合到自注意力的计算中
原始的LayerNorm需要计算均值和方差,然后再进行归一化;而RMSNorm(Root Mean Square Normalization)是LayerNorm的一种变体,其通过计算层中所有神经元输出的均方根(Root Mean Square)来归一化这些输出。这样可以减少不同层输出分布的差异,有助于加速训练并提高模型的稳定性。
SwiGLU(Sigmoid-Weighted Linear Unit)是一种神经网络中的激活函数,它是 GLU (Gated Linear Unit) 的一种变体,由两部分组成:一个线性变换和一个 sigmoid 函数。输入先通过一个线性变换,然后用 sigmoid 函数的输出加权。
GQA则是介于Multi-query和Multi-head之间的一种中间形式,传统的Multi-head Self-attention中每个Head都有各自的Q,K,V;而Multi-Query Self-attention中,各个头之间共享一个K、V;而GQA则是介于两者之间,即对头进行分块,每块中的若干头使用同样的K,V。
作者在 34B 和 70B 的模型上使用了 group-attention 技术。这个技术是指,正常的 attention 要在每个 head 分别用不同 K Q V 矩阵把 hidden state 的某个部分做变换。为了节省参数,可以然后 K V 变换阵共享参数,作者使用的版本是 8 个 Q 阵对应一组 K V 阵的参数
作者通过相同的实验,发现 GQA 确实不咋影响效果
MHA
是 multi-head attention 就是原始版本,很好理解。但是表格里面的 MQA 又是什么东西?
其实 MQA
是 group attention 的一种特殊情况,就是所有 head 的 key value 是相同的,区别只有 Q
GQA
: Training generalized multi-query transformer models from multi-head checkpoints
本文对Llama 2 模型在一系列标准学术基准测试中的性能进行了报告。与其他模型相比,Llama 2 模型不仅超过了 Llama,还在多个分类基准上超过了其他开源模型和某些闭源模型。在长上下文(Long-context)数据集上效果比Llama提升显著。
文章对上述Llama2模型与Llama1,MosaicML,Falcon这些开源模型效果进行了评估、比对。文章选择了包含代码、常识推理、世界知识、阅读理解、数学、MMLU等benchmarks进行了数值实验。如Table 3 所示,Llama2模型效果超过了Llama1,且超过所有其他被比较的开源模型。
此外,文章将Llama2模型与GPT-3.5、GPT-4,PaLM,PaLM-2-L这些闭源模型进行了比较,通过调用这些模型的API来获得在benchmarks上面的数值实验结果。从Table 4 可以看出,在Llama2 70B和GPT-4等闭源模型中还是有一定的性能差距的。
Llama 2-Chat 的开发涉及了多次迭代应用的对齐技术,包括指令调整和人类反馈的强化学习(RLHF)。这个过程需要大量的计算资源和注释工作。
类似于LIMA[2]的结论,文章发现少量高质量的SFT数据的效果超过使用大量无法保证质量的三方数据。文章发现,大约几万条高质量的SFT标注就可以实现高精度的结果,最终文章标注了27540条SFT数据。
使用Scaling Instruction-Finetuned Language Models中的开源数据集进行指令微调。在指令微调过程中,数量有限的高质量数据集可以有效提升模型整体的效果。有监督finetuning中使用cosine的学习率策略,初始学习率为
初始步骤:使用公开可用的指令微调数据作为 SFT 的起点。
数据质量:重点放在收集高质量的 SFT 数据上,因为作者发现许多第三方数据质量和多样性不足。通过放弃第三方数据集中的数百万个示例,并使用基于供应商的标注工作中更少但质量更高的示例,结果显著提高。作者发现数万级别的 SFT 标注就足以达到高质量结果,本文收集了总共27,540个标注。
训练细节:训练时,prompt和答案拼接在一起,使用特殊的 token 来分开这两个部分。采用自回归损失并设置prompt不参与反向传播(即Prompt部分不计算loss)。
在RLHF中会让人来给不同模型的结果进行打分,然后根据人的反馈训练一个奖励模型(reward model),后续可以根据奖励模型自动进行打分。
类似InstructGPT[3],文章尝试收集人类偏好数据,并通过RLHF来将模型和人类偏好和指令遵循进行对齐。
第一个阶段是收集有人类偏好的数据用于强化学习,收集过程是先定义一个prompt,然后从两个超参等配置不同的模型进行推理,人类对结果进行评价,分为significantly better
/better
/slightly better
/negligibly better(unsure)
四个标签。这里的结果偏好于安全的有帮助的答案,比如prompt是给出制作炸弹的步骤,尽管模型给出制作步骤是有帮助的,但这不符合安全的要求。数据按周级别进行收集和训练。如下示例第一个是没有帮助的答案,第二个是安全的答案。
Meta收集的训练数据集和开源数据对比如下,在Meta的数据集中Example的token数长度显著增长。
首先,文章通过如下程序收集人类偏好数据:
标记员写一个prompt;
让模型基于该prompt生成两个回答;
标记员基于给定的标准进行二选一;
标记员给出两个回答的差异程度:significantly better, better, slightly better或者unsure。
按照如上程序,文章每周迭代收集helpfulness和safety两个基准的偏好数据,从而迭代训练llama2-chat模型。
此外,标记员需要给出一个安全性的标签,标签指向三个类别:
被选择的答案是安全的,另一个答案不安全;
两个答案都是安全的;
两个答案都是不安全的。
结果表明三种选择的占比分别为18%, 47%和35%。文章将上述第一个分类的数据移除,因为安全的回答自然会被人类偏爱。
在 Llama 2-Chat 模型的 RLHF 过程中,1 首先进行了人类偏好数据的收集,这些数据用于后续的奖励建模,收集了超过一百万个基于人类指定指南的二元比较的大型数据集,这些数据的特点是对话轮次更多,平均长度更长:
二元比较:使用二元比较方法(即只需判断哪一个更好,不需要对各自进行打分)来收集偏好数据,主要是为了最大化收集的prompt的多样性。
标注过程:注释者首先编写提示,然后在两个模型响应中选择一个,同时标记他们对所选响应的偏好程度(significantly better, better, slightly better, or negligibly better/ unsure)。
注重有用性和安全性:在收集偏好数据时,重点放在模型响应的有用性和安全性上。
安全标签收集:在安全阶段,额外收集安全标签,将响应分为三个类别:安全、双方均安全、双方均不安全。
数据分布和奖励模型:每周收集偏好数据(即每次都使用本周最新的模型进行响应然后收集偏好数据)。因为没有充足的新偏好样本分布,会导致奖励模型效果退化。
第二个阶段是反馈模型的训练,反馈模型输入是一个模型的推理结果和相关的prompt(包括前一轮对话的上下文信息),输出是预测一个分数来给结果打分,使得llama2-chat更符合人类的喜好(安全、有效)。
反馈模型的初始化也是基于预训练的语言模型的checkpoint,模型结构和超参不变,区别在于从预测下一个token的分类输出改为产出分数的回归输出。
接下来,文章利用上述helpfulness, safety偏好数据分别训练两个奖励模型Helpfulness RM和 Safety RM。文章利用预训练的chat模型作为RM的初始化参数,这样可以包含预训练阶段学习到的知识,模型参数和架构与预训练阶段一致,除了将用于预测token的分类head修改为一个计算奖励的份的回归head。
奖励模型将模型响应及其相应的提示(包括来自前一个回合的上下文)作为输入,并输出一个标量分数来指示模型生成的质量(例如,有用性和安全性)。利用这样的反应分数作为奖励,可以在RLHF期间优化Llama 2-Chat,以更好地调整人类的偏好,提高帮助和安全性。
之前的研究发现有用性和安全性存在一个Trade-off,为此本文训练了两个奖励模型分别单独考虑有用性和安全性。奖励模型和chat模型初始化于同样的预训练checkpoint,这样可以保证两个模型从同样的预训练中获得一样的知识。两个模型的结构和超参数都保持一致,只是替换了模型的分类头/回归头。
训练目标 采用二元排序损失(binary ranking loss)
了学习人类偏好数据,文章参考InstructGPT[3]中的ranking损失函数:
其中,
为prompt, 为被选择的回答, 为被拒绝的回答, 表示奖励模型的输出分值(这里的 表示prompt 和输出 的结果评分),对于 是符合人类偏好的输出, 是被拒绝的输出。考虑到输出还分为几个等级,llama2-chat在这个基础上增加了一个margin额外的部分, 表示打分的一个离散函数,对应关系如下。
上述损失函数旨在令被偏好的回答
的得分尽可能高于被拒绝的回答 的得分。在此基础上,文章将收集到的偏好程度数据囊括进来: 其中,
表示偏好程度(前面收集的significantly better, better, slightly better或者unsure), 越大表示被选择的回答被人类的偏好程度越明显,从而两个回答之间的得分差异要更大。 最后,将Helpfulness RM和Safety RM模型分别在Meta Helpfulness data和Meta Safety data上训练得到两个奖励模型。RM满足scaling law,即在相同的数据集上,模型越大,效果越好:
由于本文采用了4个不同的偏好等级(significantly better
, better
, slightly better
, or negligibly better/ unsure
),所以作者对原始的loss进行了一些修改,引入
数据组合 Helpfulness奖励模型最终在所有Meta Helpfulness数据上进行训练,并结合从Meta Safety和开源数据集中统一采样的同等部分剩余数据。Meta Safety奖励模型在所有Meta Safety和Anthropic无害数据上进行训练,并以90/10的比例混合Meta Helpfulness和开源有用数据。作者发现,10%有用数据的设置特别有利于样本的准确性,其中选择和拒绝的回答都被认为是安全的。
训练细节 对训练数据进行了一个epoch的训练(防止过拟合)。使用与基础模型相同的优化器参数。70B 参数 Llama 2-Chat 的最大学习率为
奖励模型的结果 Llama 2-Chat 的奖励模型在内部测试集上表现最佳,尤其是在有用性和安全性测试集上。Llama 2-Chat 的奖励模型在准确率上优于所有基线模型,包括 GPT-4。而且,GPT-4 在没有针对性训练的情况下也表现出色。由于有用性和安全性之间可能存在张力,因此优化两个分开的模型(有用性和安全性)更为有效。
Scaling趋势 研究了奖励模型在数据量和模型大小方面的扩展趋势,这些模型使用了每周收集的奖励模型数据量逐渐增加。Figure 6 显示了预期的结果,即更大的模型对于相似的数据量能获得更高的性能。更重要的是,考虑到用于训练的现有数据注释量,扩展性能尚未达到平台期,这表明随着更多注释的增加,还有改进的空间。注意到,奖励模型的准确性是 Llama 2-Chat 最终性能的最重要代理之一。虽然全面评估生成模型的最佳实践仍是一个开放的研究问题,但奖励的排名任务没有歧义。因此,在其他条件相同的情况下,奖励模型的改进可以直接转化为 Llama 2-Chat 的改进。
由于Meta的人类偏好数据按周更新,从而可通过更新的数据迭代训练模型:RLHF-V1, …, RLHF-V5。具体来说,每个版本的RLHF模型可通过下述两种策略进行微调的。
随着更多批次的人类偏好数据注释的收集,作者训练了连续版本的 RLHF 模型,在此称为 RLHF-V1、......、RLHF-V5。使用两种主要算法对 RLHF 进行了微调:
近端策略优化(Proximal Policy Optimization, PPO),这是 RLHF 文献中的标准算法。
标准RLHF策略,第t tt步的样本为t − 1 t-1t−1步的更新策略的函数。PPO的目的是最大化奖励函数的期望,奖励函数定义如下:
其中
简单解释一下上式,IS_SAFETY就是代表模型中可能引发不安全回答的prompt
拒绝采样微调(Rejection Sampling fine-tuning)。对模型中的 K 个输出进行采样,然后用奖励模型选出最佳候选,这里作者将所选输出用于梯度更新。对于每个提示,获得最高奖励分数的样本被视为新的gold label。
博文2的描述 从模型输出中采样K个样本,通过RM选择最好的候选作为新的gold standard,在这些样本上对模型进行梯度更新。文章只对70B的模型进行RSFT,对7B和13B的模型,文章通过70B的rejection sample进行微调,相当于对大模型的蒸馏。
这两种 RL 算法的主要区别在于:
广度(Breadth)-- 在拒绝采样算法中,模型会针对给定的提示探索 K 个样本,而 PPO 算法只进行一次生成。在拒绝采样中产生了K个样本输出,但在PPO中只有一个样本。
深度(Depth) - 在PPO算法中,第 t 步的训练过程中,样本是上一步梯度更新后第 t - 1 步更新模型策略的函数。拒绝采样微调会对模型初始策略下的所有输出进行采样,以收集新的数据集,然后再应用类似于 SFT 的微调。PPO中训练的第t步的采样方法是从上一步t-1步经过梯度更新得到的;在拒绝采样中在finetuning之前是基于给定初始的策略后对所有的输出进行采样,类似SFT。
在 RLHF(V4)之前,只使用了拒绝采样微调,而在此之后,将这两种算法依次结合起来。
在V4版本之前,文章通过RSFT进行微调,在V4之后,文章通过两个策略结合(先应用RSFT,再应用PPO)进行微调。此外,文章发现,迭代过程中模型出现了遗忘。为了解决此问题,文章每次都会将早期版本的样本包含进入微调的数据集。
在RLHF (V4)之前只使用了拒绝采样,在V4以后的版本按顺序使用两种策略,在拒绝采样以后再使用PPO算法。只在最大70B的llama-chat模型中采用了拒绝采样方法,其余小的模型都是从70B蒸馏出来的。RLHF V3训练中采用了RLHF V1和V2的采样的样本。对于拒绝采样的收益可以参考下图中黄色阴影部分:
Ghost Attention (GAtt):提出了一种新技术 GAtt,帮助控制多轮对话中的对话流。
方法:GAtt 通过在微调数据中修改以帮助注意力集中在多阶段的对话上。
作者发现,在多轮对话之后,RHLF模型很容易忘记最初的指令。为此文章提出了Ghost Attention(GAtt)。给定消息序列 act as...
)。为使模型在每一轮对话中遵循该指令,一种简单的方法是讲inst直接拼接到每一个user信息中,即
GAtt的效果非常好,实验发现GAtt下的inst可以持续到20+轮次的对话,直至达到最大的context长度。
GAtt方法的思路通过hack用的fine-tuning数据帮助attention专助于多阶段对话。假设有一个多轮对话的mesage列表为
定义一个贯穿整个对话的指令
inst
,比如act as
。把这个指令拼接到对话中的所有用户的对话消息中;从生成数据中使用RLHF模型进行采样,用采样的数据可以进行finetuning。跟拒绝采样不同的是,只在第一轮对话中使用ins,并把其余轮的对话的损失都设为0.
构建最终的训练
inst
时,使用[Context Distillation]的方法把原始的指令减短,例如从Always act as Napoleon from now
变为Figure: Napoleon
。
模型评估:使用基于模型的评估来选择每次迭代中表现最好的模型。
人类评估:通过人类评估来评价模型在有用性和安全性方面的表现。
首先文章基于模型对RLHF进行自动评估。为了确定RW自动评估的效果是否准确,文章收集了一系列的包含有用性和安全性的prompts测试机,然后让标记员评估回答的Likert Score。我们发现RM给出的分数和人类的Likert score强相关。基于RM对不同阶段的模型结果进行评估,文章发现RM模型和ChatGPT模型对llama2-chat模型评估效果都很好,在V3之后helpfulness和safety指标上都高于ChatGPT(50%),如Figure 11 所示。
文章又进行了人工评估:令人类标记员在4000个单轮+多轮对话上对主要模型版本的回答质量进行打分(多轮对话当作整体)。如Figure 12 所示。,llama2-chat模型在单轮对话和多轮对话上表现均优于所有开源模型。
首先文章预训练数据集未包含任何包含个人信息的数据,且未使用meta自己用户的数据,除此之外未进行其它过滤。
文章对预训练语料库进行了统计分析
在英语语料中,He出现的次数相比于She出现的要多,从而学习到的模型很可能会生成更多的He相关的语句
文章考虑了宗教、性别、国际、种族和性取向这5种敏感话题,并计算语料库中每个话题的top5元素,如Table 9 所示。可以看到,female出现次数更多(尽管she出现次数少),这说明这些词之间的表达语境可能不同。在国籍上,语料库中包含更多的西方国家。
文章通过HateBERT评估了英语语料中的有毒语料(toxicity),发现仅0.2%的文档中可能包含有毒文本(似然分数>=0.5)
文章使用fastText来进行语言检测,超过0.5似然分数的认为属于该语言。最终检测结果表明89.7%的语料,从而针对其它语言要谨慎使用llama2。
此外,文章通过safety benchmarks来对预训练模型进行安全分析,具体包含以下benchmarks:
Truthfulness:通过TruthfulQA数据来检测模型输出是否可靠、真实、符合常理。
Toxicity:通过ToxiGen来检测有毒回答。
Bias:通过BOLD检测模型生成是否有政治倾向。
如Table 11 所示,相比于llama1-7B,llama2-7B提升了21.37%的truthfulness,降低了7.61%的toxicity,且bias有提升。但相比于其它开源模型,llama2的toxicity还是很高,这是因为文章用到的数据集未经系统的过滤。但增加过滤之后模型很难再执行一些诸如hate speech的任务了。
接下来文章介绍了在FT阶段的safety策略,主要包含以下几种
Supervised Safety FT:首先将adversarial prompts(用户选择的可能造成不安全回答的prompts)和安全的生成内容结合,将该数据放入SFT数据中。从而模型可以在RLHF之前就和安全指导对齐。
Safety RLHF:在RLHF阶段,文章训练了一个安全的safety RM来指导模型生成安全的回答。Safety RLHF的效果如下图所示,可以看到,Figure 14 左的Safety RM分值在应用safety RLHF之后(y轴)相比于之前(x轴)有明显的提升,且下图右的helpfulness RM分值在应用safety RLHF之后(y轴)相比于之前(x轴)未发生明显降低。
Safety Context Distillation:最后,文章将一个preprompt作为前文介绍的inst(比如:you are a safe and responsible preprompt )和prompt结合,让模型生成安全的回答。
此外,文章证明了,当helpfulness数据不变时,safety数据越多,模型处理不安全prompts的能力越强,且低安全性的回答越少(ligher score),如Figure 15 所示
为了判断模型是否有false refusal(拒绝安全的prompts),文章在helpfulness数据集和精心设计的安全的但包含一些敏感词的prompts上(borderline dataset)进行评估,结果发现在helpfulness数据上false refusal大约仅有0.05%,占比很低。但在精心设计的borderline dataset上大的多(20%以上),说明llama2-chat针对此类数据的判断能力仍需提高。
文章组建了一个red teaming组,包含各个领域的专家来对不同风险分类进行模拟风险,从而减少模型的安全性问题。参与者需要标注出对话的风险领域、风险等级,作者会根据标注结果进行训练策略调整。
定义模型的鲁棒性指标为
文章收集了2000个adversial prompts来进行人工评估,其中1351个是单轮对话,623个是多轮对话。然后人工对模型的安全性进行打分:1~5,分数越高表示越安全且有用。考虑打分1-2为violation,则如Figure 17 左所示,llama-整体的violation在所比较的模型中最低,且下图右表明llama2整体的整体打分也高于其它模型。
训练数据来自公开可用的源,排除了来自 Meta 产品或服务的数据。
本研究引入了 Llama 2,这是一个新的预训练和微调模型系列,参数量级为 70 亿到 700 亿。这些模型已经证明了它们与现有开源聊天模型的竞争力,并且在检查的评估集上与一些专有模型相当,尽管它们仍然落后于 GPT-4 等其他模型。
本文细致地阐述了实现模型所采用的方法和技术,并着重强调了它们与有用性和安全性原则的一致性。
为了对社会做出更大的贡献并促进研究的步伐,作者尽责地开放了“Llama 2”和“Llama 2-Chat”的访问权限。作为对透明度和安全性持续承诺的一部分,作者计划在今后的工作中进一步改进 Llama 2-Chat。
博文2 文章亮点:文章训练并发行了一系列llama2模型,其中llama2-chat是迄今为止开源的chat模型中表现最好的。且文章给出的llama2给出了一系列安全性增强策略,可供其它LLM参考。
论文笔记:Llama 2: Open Foundation and Fine-Tuned Chat Models
点评:★★★☆☆,主要对文章进行了概述,可以帮助新手对文章有个大概的了解。
论文笔记--Llama 2: Open Foundation and Fine-Tuned Chat Models
点评:★★★★☆,比博文1多了更多的细节和对一些概念的解释。
点评:补充了一些其他论文中对这篇文章的知识,部分描述更通俗了。★★★☆☆。
论文阅读 [精读]-Llama 2: Open Foundation and Fine-Tuned Chat Models (上)
论文阅读 [精读]-Llama 2: Open Foundation and Fine-Tuned Chat Models (下)
点评:这两篇博文其实从内容上来看,作者应该是对文章比较理解了的。但是从写作上看,着实没有什么收获。而且看得比较晦涩,最起码的标点符号和分隔有些模糊,致敬每个认真写博客的人吧!★★★☆☆,未摘录太多内容。
※ 以下内容太多,但是如果以后深入学习的时候,依然值得参考。这里不再摘录,提供源链接,读者可以根据自己的喜好任选学习。
Llama2 - 论文精读学习笔记背景全文概述方法预训练训练细节RMSNormSwiGLUGQAgroup-attentionLlama 2预训练模型评估※ 微调● 监督式微调(SFT: Supervised Fine-Tuning)● 强化学习与人类反馈(RLHF: Reinforcement Learning with Human Feedback)人类偏好数据收集奖励建模(RM: Reward Modeling)迭代式微调(Iterative Fine-Tuning)多轮一致性的系统消息 (System Message for Multi-Turn Consistency)RLHF 结果SafetySafety Fine-TuningRed TeamingSafety评估数据集结论补充参考博文原文目录
Introduction 3 Pretraining 5 Pretraining Data 5 Training Details 5 Llama 2 Pretrained Model Evaluation 7 Fine-tuning 8 Supervised Fine-Tuning (SFT) 9 Reinforcement Learning with Human Feedback (RLHF) 9 System Message for Multi-Turn Consistency 16 RLHF Results 17 Safety 20 Safety in Pretraining 20 Safety Fine-Tuning 23 Red Teaming 28 Safety Evaluation of Llama 2-Chat 29 Discussion 32 Learnings and Observations 32 Limitations and Ethical Considerations 34 Responsible Release Strategy 35 Related Work 35 Conclusion 36 Appendix 46 Contributions 46 Additional Details for Pretraining 47 Additional Details for Fine-tuning 51 Additional Details for Safety 58 Data Annotation 72 Dataset Contamination 75 Model Card 77
博文免责声明
本条博文信息主要整合自网络,部分内容为自己的理解写出来的,如有断章截句导致不正确或因个人水平有限未能详尽正确描述的地方,敬请各位读者指正;
引用出处可能没有完全追溯到原始来源,如因此冒犯到原创作者,请联系本人更正/删除;
博文的发布主要用于自我学习,其次希望帮助到有共同疑惑的朋友。